<?php
/**
* Created by Ginsa Informática S.A.
* Programador: Michael Ballester Granero
*
* Este archivo pertenece a la aplicación realizada por Ginsa Informática S.A..
* El código fuente de la aplicación incluye un archivo llamado LICENSE
* con toda la información sobre el copyright y la licencia.
*/
namespace App\Ginsa\SistemaBundle\Controller;
use App\Ginsa\SistemaBundle\Entity\Modulos;
use App\Ginsa\SistemaBundle\Entity\Preguntas;
use App\Ginsa\SistemaBundle\Services\CheckLicenseService;
use App\Ginsa\SistemaBundle\Singelton\ClienteActivo;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class FaqController extends AbstractGinsaController
{
/**
* Pantalla inicial del faq
* @param Request $request
* @param CheckLicenseService $checkLicenseService
* @return Response
*/
public function index(Request $request, CheckLicenseService $checkLicenseService)
{
$session = $request->getSession();
if ($session->get('base') == null) $base = '@GinsaSistema/base.html.twig';
else $base = $session->get('base');
//Obtenemos el listado de modulos y despues le añadimos todas las preguntas que contiene, hasta un max de 4
$modulos = $this->getDoctrine()->getManager()->getRepository(Modulos::class)->recientesByModulo();
foreach ($modulos as $key => $modulo) {
$modulos[$key]['preguntas'] = $this->getDoctrine()->getManager()->getRepository(Preguntas::class)->recientesByModulo($modulo['id'], 4);
}
return $this->render('@GinsaSistema/FAQ/faqIndex.html.twig', array(
'client' => ClienteActivo::getInstance()->getCliente(),
'licencia' => $checkLicenseService->compruebaLicenciaCliente(),
'base' => $base,
'modulos' => $modulos
));
}
/**
* Mostramos la pantalla del modulo, donde se muestra un acordeon por categorias y dentro las distintas preguntas
* @param Request $request
* @param CheckLicenseService $checkLicense
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
public function modulosShow(Request $request, CheckLicenseService $checkLicense)
{
$session = $request->getSession();
if ($session->get('base') == null) $base = '@GinsaSistema/base.html.twig';
else $base = $session->get('base');
$modulos = $this->getDoctrine()->getManager()->getRepository(Modulos::class)->obtenerBySlug($request->get('moduloSlug'));
return $this->render('@GinsaSistema/FAQ/faqModulosShow.html.twig', array(
'client' => ClienteActivo::getInstance()->getCliente(),
'licencia' => $checkLicense->compruebaLicenciaCliente(),
'base' => $base,
'modulos' => $modulos
));
}
/**
* Cuando seleccionamos
* @param Request $request
* @param CheckLicenseService $checkLicense
* @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
*/
public function preguntasShow(Request $request, CheckLicenseService $checkLicense)
{
$session = $request->getSession();
if ($session->get('base') == null) $base = '@GinsaSistema/base.html.twig';
else $base = $session->get('base');
$pregunta = $this->getDoctrine()->getManager()->getRepository(Preguntas::class)->obtenerBySlug($request->get('slug'));
return $this->render('@GinsaSistema/FAQ/faqPreguntaShow.html.twig', array(
'client' => ClienteActivo::getInstance()->getCliente(),
'licencia' => $checkLicense->compruebaLicenciaCliente(),
'base' => $base,
'pregunta' => $pregunta
));
}
/**
* Buscamos las preguntas por los diferentes titulos y mostramos el listado con el resultado
* @param Request $request
* @param CheckLicenseService $checkLicense
* @return \Symfony\Component\HttpFoundation\Response
*/
public function buscarPreguntas(Request $request, CheckLicenseService $checkLicense)
{
$session = $request->getSession();
if ($session->get('base') == null) $base = '@GinsaSistema/base.html.twig';
else $base = $session->get('base');
$preguntas = $this->getDoctrine()->getManager()->getRepository(Preguntas::class)->obtenerByTitulo($request->query->get('buscar'));
return $this->render('@GinsaSistema/FAQ/faqResultadoBusqueda.html.twig', array(
'client' => ClienteActivo::getInstance()->getCliente(),
'licencia' => $checkLicense->compruebaLicenciaCliente(),
'base' => $base,
'preguntas' => $preguntas,
'buscando' => $request->query->get('buscar')
));
}
}